% File:     srs.tex
% Author:   Ryan J. Bovorasmy
% Date:     2007-06-23
% Desc:     SRS Template, based on the MSOE SDL XML SRS template.
% Rev:      [2007-06-23, Ryan J. Bovorasmy] First major revision.
% Rev:      [2007-10-16, Ryan J. Bovorasmy] Updated template, made minor fixes.
%
\documentclass[letterpaper,10pt]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% INSTRUCTIONS:
%%
%% This document can be used to create an SRS. It is meant to be used in
%% conjunction with a usecase template (usecase.tex).
%%
%% Certain sections (such as this one) are delimited with special comments.
%% These sections contain similar material, and should be treated as a group.
%%
%% Comments beginning with *** indicate that editing is necessary in that
%% area. Example:
%%
%% *** Section description. This section needs editing.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
%
% BEGIN COMMAND SECTION
% Do not edit this section unless you know what you are doing.
%
\newcounter{usecase}
\newcounter{flownumber}
\newcommand{\history}[3]%
{%
\hline
#1 & #2 & #3
}
\newcounter{goal}
\newcommand{\goal}[3]%
{%
\addtocounter{goal}{1}
\parbox{.75\textwidth}{
\begin{description}
  \item[\textbf{Goal \thegoal{}:}]~#1
  \item[\textbf{Advantage:}]~#2
  \item[\textbf{Metric:}]~#3
\end{description}
}
~\\{}
}
\newcounter{risk}
\newcommand{\risk}[5]%
{%
\parbox{.75\textwidth}{
\begin{description}
  \addtocounter{risk}{1}
  \item[Risk \therisk:] #1
  \item[Last Updated:] #2
  \item[Severity:] #3
  \item[Likelihood:] #4
  \item[Mitigation:] #5
\end{description}
}
~\\{}
}
\newcommand{\work}[4]%
{%
  #1 & #2 &%
  \parbox{.22\textwidth}%
  {#3} &%
  \parbox{.23\textwidth}%
  {#4}
}
%
% END COMMAND SECTION
%
%||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

%------------------------------------------------------------------------------
%
% BEGIN VARIABLE SECTION
%
%
% *** Enter the Project name here:
%
\newcommand{\projectname}{PROJECT NAME}
\newcommand{\abrvname}{ABBREVIATED PROJECT NAME}
\newcommand{\totalname}{\projectname{} (\abrvname{})}
%
% *** Enter the author names here, separated by newlines:
%
\newcommand{\authors}%
{%
AUTHOR~ONE\\
AUTHOR~TWO\\
AUTHOR~THREE
}
%
% *** Enter the current version of the document:
%
\newcommand{\version}{1.0}
%
% *** Enter the revision history here.
% The format of the history command is as follows:
%
% \history{NAME}{DATE}{BRIEF DESCRIPTION\\}
%
% Notice that a newline is REQUIRED after the description.
%
\newcommand{\revhistory}%
{%
\history{Ryan J. Bovorasmy}{2007-06-24}{First major revision.\\}
\history{Ryan J. Bovorasmy}{2007-06-24}{Second major revision.\\}
\history{Ryan J. Bovorasmy}{2007-06-24}{Third major revision.\\}
}
%
% END VARIABLE SECTION
%
%------------------------------------------------------------------------------

%
% Do not mess with these header lines unless you know what you are doing:
%
\title{SRS for \totalname{}}
\author{\emph{Prepared By:}\\{}\authors{}\\{}\\{}\emph{Document Version:}~%
\version{}\\{}\emph{Template Version:}~1.1}
\date{\emph{Last Modified:} \today}
\textwidth=6.5in
\oddsidemargin=0.0in

\begin{document}

\maketitle
\tableofcontents
\newpage

%
% *** Write a brief description of the project here:
%
\begin{abstract}
  \projectname{} aims to...
\end{abstract}

%
% Do not alter this section:
%
\section{Revision History}
\begin{table}[htbp]
  \label{table:revhistory}
  \begin{tabular}{|l|l|l|}
    \revhistory
    \hline
  \end{tabular}
\end{table}

%
% This section contains a brief summary of the project.
%
\section{Brief}
%
% In general, nothing needs to be done with the executive summary,
% but you may want to read it over before publishing it.
%
\subsection{Executive Summary}
This Software Requirements Specification records agreements between the
\totalname{} development team and the stakeholders regarding the internal
functionality and external interfaces of the \abrvname{} system.
This specification will form the
basis for the design, implementation, and testing of the \abrvname{} system and
all related subsystems, as defined by this document.
%
% *** Enter a full project description here.
%
\subsection{Project Description}
\projectname{} aims to...

%
% *** Write the project goals here.
% Follow the format of the goal templates.
%
\section{Project Goals}
%-------------------------------------------
\goal%
{A Goal}% Goal
{The Advantage}% Advantage
{A Metric}% Metric
%-------------------------------------------
\goal%
{A Goal}% Goal
{The Advantage}% Advantage
{A Metric}% Metric
%-------------------------------------------
\goal%
{A Goal}% Goal
{The Advantage}% Advantage
{A Metric}% Metric

\section{Stakeholders}
%
% *** Enter a list of stakeholders here:
%
\begin{tabular}{|l|c|}
  \hline
  %-------------------------------------------
  % Enter Type:
  STAKEHOLDER~TYPE~ONE & \parbox{.5\textwidth}%
  {~\\
  % List Names Here:
  NAME~ONE\\
  NAME~TWO\\
  NAME~THREE\\
  }\\
  \hline
  %-------------------------------------------
  % Enter Type:
  STAKEHOLDER~TYPE~TWO & \parbox{.5\textwidth}%
  {~\\
  % List Names Here:
  NAME~ONE\\
  NAME~TWO\\
  NAME~THREE\\
  }\\
  \hline
\end{tabular}

%
% *** Work context diagrams
%
% INSTRUCTIONS:
% In the following section,Fill out the marked areas.
%
% Do not remove the comments; they are also used to
% allow the \work{}{}{}{} command to have line breaks.
%
% A complete row in the work context diagram is marked with a horizontal
% line composed of minus signs (------).
% Copy and paste from line to line to add more rows to the table.
%
% If there are more than a few rows, you may need to start a new table in
% order to break it up across pages.
%
\section{Work Context}
\begin{tabular}{|l|l|l|l|}
  \hline
  \textbf{Adjacent System} & \textbf{Category} & %
  \textbf{Inflow Events} & \textbf{Outflow Events} \\
  \hline
  %--------------------------------------------------
  \work%
  %
  % Adjacent System:
  %
  {Professors}%
  %
  % Category (Active/Automatic):
  %
  {Active}%
  %
  % Inflow Events:
  %
  {
    \begin{itemize}
      \item Item One
      \item Item Two
    \end{itemize}
  }%
  %
  % Outflow Events:
  %
  {
    \begin{itemize}
      \item Item One
      \item Item Two
    \end{itemize}
  }
  \\
  \hline
  %--------------------------------------------------
  \work%
  %
  % Adjacent System:
  %
  {Subsystem}%
  %
  % Category (Active/Automatic):
  %
  {Automatic}%
  %
  % Inflow Events:
  %
  {
    \begin{itemize}
      \item Item One
      \item Item Two
    \end{itemize}
  }%
  %
  % Outflow Events:
  %
  {
    \begin{itemize}
      \item Item One
      \item Item Two
    \end{itemize}
  }
  \\
  \hline
\end{tabular}

%
% *** Use case model inclusions.
%
% Name the files with descriptive names, rather than numbers.
% This way, you can change the order, and the numbers will be automatic.
%
\section{Use-Case Models}
%\input{uc-name-one.tex}
%\input{uc-name-two.tex}
%\input{uc-name-three.tex}
%\input{uc-name-four.tex}

%
% *** Assumptions
%
\section{Assumptions}
\begin{itemize}
  \item Assumption One
  \item Assumption Two
\end{itemize}

%
% *** Dependencies
%
\section{Dependencies}
\begin{itemize}
  \item Dependency One
  \item Dependency Two
\end{itemize}

%
% *** Risks
%
\section{Risks}
%---------------------------------------------
\risk%
{Risk description.}% Description.
{01-01-2007}% Last Updated.
{High}% Severity.
{Very Likely}% Likelyhood.
{Alternative.}% Mitigation.
%---------------------------------------------
\risk%
{Risk description.}% Description.
{01-01-2007}% Last Updated.
{High}% Severity.
{Very Likely}% Likelyhood.
{Alternative.}% Mitigation.

%
% *** Constraints
%
\section{Constraints}
\begin{itemize}
  \item Constraint One
  \item Constraint Two
\end{itemize}

%
% *** Open Issues
%
\section{Open Issues}
\begin{itemize}
  \item Open Issue One
  \item Open Issue Two
\end{itemize}

%
% *** Uncomment any subsections that you need in the following section:
%
\section{Requirements}
%============================================================================
% *** Functional Requirements
%
\subsection{Functional Requirements}
\newcounter{fr}
\begin{list}{FR\thefr{}}{\usecounter{fr}}
  \item A requirement.
\end{list}
% %============================================================================
% % *** Usability Requirements
% %
% \subsection{Usability Requirements}
% \newcounter{us}
% \begin{list}{US\theus{}}{\usecounter{us}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Performance Requirements
% %
% \subsection{Performance Requirements}
% \newcounter{pe}
% \begin{list}{PE\thepe{}}{\usecounter{pe}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Legal Requirements
% %
% \subsection{Legal Requirements}
% \newcounter{le}
% \begin{list}{LE\thele{}}{\usecounter{le}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Licensing Requirements
% %
% \subsection{Licensing Requirements}
% \newcounter{li}
% \begin{list}{LI\theli{}}{\usecounter{li}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Reliability Requirements
% %
% \subsection{Reliability Requirements}
% \newcounter{rl}
% \begin{list}{RL\therl{}}{\usecounter{rl}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Supportability Requirements
% %
% \subsection{Supportability Requirements}
% \newcounter{su}
% \begin{list}{SU\thesu{}}{\usecounter{su}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** User Requirements
% %
% \subsection{User Requirements}
% \newcounter{ur}
% \begin{list}{UR\theur{}}{\usecounter{ur}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Software Requirements
% %
% \subsection{Software Requirements}
% \newcounter{so}
% \begin{list}{SO\theso{}}{\usecounter{so}}
%   \item A requirement.
% \end{list}
% %============================================================================
% % *** Applicable Standards
% %
% % This includes things like XML standards, etc.
% %
% \subsection{Applicable Standards}
% \newcounter{ap}
% \begin{list}{AP\theap{}}{\usecounter{ap}}
%   \item A requirement.
% \end{list}

\end{document}
